好的,美好的中秋連假轉眼就來到了尾聲,不過沒關係,欸嘿~我已經在為國慶連假做準備了(?)才怪,快點讓我放假啊啊啊啊啊啊!!!
好啦,廢話不多說,我們下方進入正題
為了要先水多一點字數, 在開始確認資料型態之前,我們先來複習一下前幾天的神奇魔法
// 確認 Table 行數
' ORDER BY 1--
' ORDER BY 2--
' ORDER BY 3--
// 確認Table 欄位數量
' UNION SELECT NULL--
' UNION SELECT NULL,NULL--
' UNION SELECT NULL,NULL,NULL--
透過上方這兩個 Payload 後,我們就可以很清楚地得知 Table 的框架大致上是如何組成的,既然交男/女朋友都會先看外表再瞭解內在了 那麼,確認完 Table 的外表後當然也要來確認一下內部的資料型態囉!
' UNION SELECT 'a',NULL,NULL--
' UNION SELECT NULL, a',NULL --
' UNION SELECT NULL,NULL,'a' --
舉例來說,在個人資料表中,有的欄位會用來儲存名稱、email,有的欄位則是用來儲存編號,因此在有的較為嚴謹的 Table 中,就會明確針對欄位進行資料型態的限制,像是在名稱的欄位中就只能輸入中文或英文,而在編號的欄位中就只能輸入整數型態,這時,我們就會利用上方的 Payload 來測試每一格可以輸入的資料類型後再進行後續操作。
在上方的 Payload 中,按照慣例先利用單引號進行註解,接著分別在第一個欄位、第二個欄位與第三個欄位中插入字串進行測試,而在這個地方,輸入數字也會被當成字串使用,因此我們會選擇透過用字串去測試,若測試的欄位只能輸入整數型態之資料,這時我輸入字串,就會收到錯誤資訊。當我將三個欄位都測試完後,就可以更加了解這個 Table 並進行更多壞壞的操作啦!